Smart services combine basic service functions, such as communication, personal information management (PIM), and location services with personal (often private) subscriber information to yield services that are tailored to each subscriber's particular needs. The private subscriber information can include subscriber preferences of the subscriber, changing subscriber situations (such as a location or activity associated with the subscriber), and other private subscriber data.
To maximize their return on investment, service providers, such as telecommunications service providers, and enterprises can benefit from enabling third-party service developers (i.e., developers that are not part of the given telecommunications service provider's organization or enterprise administrative domain) to be able to develop services for users. Such developers can contribute new and creative solutions to address users' needs (e.g., for an enterprise) and potentially generate additional revenues for the service provider or enterprise. Because such third-party service developers are external to the service provider's organization or the enterprise's administrative domain, it may be imprudent for service providers to fully trust these external developers in developing and deploying services for their customers.
Under conventional approaches, service developers must interface directly with the services and associated private subscriber data maintained by service providers to deliver smart services to the providers' subscribers. This can lead to the undesirable result of having to expose core service functionality and private subscriber data to the developers during development of a smart service or when the service is deployed and used. Similarly, subscribers typically must interface directly with each of the service providers offering a particular smart service to the subscriber. Various service providers may not provide for a consistent interface to their services, leading to an inconsistent subscriber experience across all of the services offered. In addition, service providers may not want to expose core functionality of their smart services to the service hosting providers that will host these services. Accordingly, what is needed is a method, system, and computer program product for creating smart services.